Method and apparatus for presenting a summary of selected values

ABSTRACT

A method, system, and article of manufacture for quickly and easily obtaining information about a list of elements. One embodiment of the invention comprises receiving a selection of at least one desired summary function, generating a configuration file containing the at least one desired summary function, receiving a selection of a list of numbers, copying the list of numbers into a clipboard, parsing the configuration file to extract the least one desired function, calculating the at least one desired summary function using the list of desired numbers to generate summary information, displaying the summary information in a pop-up window, and replacing the selected list of numbers with the summary information. The results window may be a pop-window, a hover-help window, or a clipboard.

TECHNICAL FIELD

This invention generally relates to user interface methods andapparatuses. More specifically, the present invention relates to amethod and apparatus for displaying a pop-up summary of selected values.

BACKGROUND

The development of the EDVAC computer system of 1948 is often cited asthe beginning of the computer era. Since that time, computer systemshave evolved into extremely complicated devices. Although today'scomputers are more sophisticated than EDVAC, the most basic requirementslevied upon computer systems have not changed. Now, as in the past, acomputer system's job is to access, manipulate, and store information.This fact is true regardless of the type or vintage of computer system.

One of the most commonly encountered types of information is a list ofelements, such as a list of numbers. Computer users frequently need toknow the statistical properties of the list, such as its sum, average,and standard deviation. One conventional way to determine thisinformation is to first transfer the list into a spreadsheetapplication, then program the spreadsheet application to calculate thedesired properties. One problem with this method is that the user musthave access to a spreadsheet application and know how to program it.Another problem with this method is that the transfer and programmingsteps frequently take a considerable amount of time and effort from theuser.

The trend toward pervasive devices, such as cellular telephones andpersonal digital assistants (“PDAs”) further compounds these problems.Many of these devices have limited memory and processing power, and thusdo not have a full-featured spreadsheet program. Moreover, even if thepervasive devices did have the capacity to execute a spreadsheetprogram, the rudimentary data entry capabilities of pervasive devicesmultiply the time and effort required from the user to transfer the dataand program the spreadsheet.

Accordingly, there is a need for a way to quickly and easily obtainstatistical information about a list of elements, particularly onpervasive devices.

SUMMARY

The present invention provides a method, system, and article ofmanufacture that provides a way to quickly and easily obtain informationabout a list of elements. One aspect of the present invention is amethod of displaying customizable summary information about a list ofelements. One embodiment of this method comprises receiving a selectionof at least one desired summary function, generating a configurationfile containing the at least one desired summary function, receiving aselection of a list of numbers, copying the list of numbers into aclipboard, parsing the configuration file to extract the least onedesired function, calculating the at least one desired summary functionusing the list of desired numbers to generate summary information,displaying the summary information in a pop-up window, and replacing theselected list of numbers with the summary information. The resultswindow in some embodiments may be a pop-window, a hover-help window, orthe clipboard.

Another aspect of the present invention is a computer program product.One embodiment of this computer program product comprises a programconfigured to perform a method of displaying summary information about alist of elements and a signal bearing media bearing the program. Themethod comprises receiving a selection of at least one desired summaryfunction; receiving a selection of a list of elements; calculating theat least one desired summary function using the list of desired elementsto generate summary information; and displaying the summary informationin a results window. In some embodiments, the program is an operatingsystem, a word processing program, a web browser, or a plug-in.

Yet another aspect of the present invention is a method for transferringinformation into an application program. One embodiment of this methodcomprises selecting at least one desired output function, selecting of alist of elements, copying the list of elements into a first addressablememory structure, calculating the at least one desired output functionusing the list of desired elements to generate output information, andautomatically transferring the output information into the applicationprogram.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1 a and 1 b depict one embodiment of an information technologysystem having a configurable summary information calculator.

FIG. 2 illustrates the operation of one embodiment of the informationtechnology system in FIG. 1.

FIG. 3 depicts one embodiment of a configuration file for informationtechnology system in FIG. 1.

FIG. 4 illustrates one method of configuring the information technologysystem in FIG. 1.

DETAILED DESCRIPTION

FIG. 1A depicts one embodiment of an information technology system 100comprising a plurality of web server computer systems 102 a and aplurality of pervasive computing devices 102 b (only one web server 102a and device 102 b shown in detail for clarity) interconnected by acommunications medium 106. Each computer system 102 has one or morecentral processing units 110 (“CPU”) connected to a main memory unit112, a mass storage interface 114, a display interface 116, a networkinterface 118, and an input/output (“I/O”) interface 120 by a system bus122. The mass storage interfaces 114 connect the system busses 122 toone or more mass storage devices, such as a direct access storage device140 and a readable and a writable optical disk drive 142. The networkinterfaces 116 allow the computer systems 102 to communicate with eachother and to a plurality of other computers (not shown) over thecommunications medium 106. The main memory 112 a in the web servercomputers 102 a contains an operating system 124 a, and a web serverapplication 126 a capable of servicing requests for web pages 128. Someof the web pages 128 contain a list of elements 129. The main memory 112b in the pervasive computing devices 102 b contains an operating system124 b and a web browser 126 b capable of requesting and rendering theweb pages 128 from the web server computer 102 a. The web browser 126 inthis embodiment includes a summary information module 125 capabledisplaying summary information about the list of elements 129.

FIG. 1B depicts the pervasive device 102 b embodiment in FIG. 1A in moredetail. The web browser 126 in this embodiment contains a selected listof elements 129′ and results window 130 (e.g., a ‘pop-up, ‘hover-help,’or ‘clipboard’ window). In operation, the user of the pervasive device102 b will first request the web pages 128 from the server computer 102a having a list of elements 129, such as a list of numbers. The userthen highlights the list of numbers 129, and indicates that they wantsummary information by, for example, selecting an appropriate commandfrom a context sensitive menu or hovering a mouse pointer over theselected list 129 for a predetermined length of time. In response tothis indication, the summary information module 125 copies the list ofelements 129′ into a temporary memory structure, computes a pre-selectedgroup of statistics about the elements 129, and then displays thecomputed statistics in the results window 130.

FIG. 2 illustrates the operation of one embodiment of the module 125 inmore detail. At block 202, the module 125 detects a selection event.This selection event may include any indication that the end user wishesor may wish to view statistics about a list of elements. Suitableselection events include, without limitation, highlighting a list ofelements 129 and then hovering over the highlighted list, andhighlighting a list of elements 129 and then selecting a menu elementfrom a context sensitive ‘right-click’ menu. Some embodiments mayrequire that these elements be contiguous, other embodiments will allowthe end user to select non-contiguous elements. At block 203, the module125 confirms that the highlighted text contains a list of elements 129and that the user has turned ‘on’ the summary module 125. Next, at block204, the module 125 copies the highlighted text into an addressablememory structure, such as the clipboard. The operating system 124 b thenparses the selected text to extract the individual elements of the list129 at block 206. Part of this process includes looking for blanks,commas, tabs, carriage return commands, or other separators commonlyused to separate elements in a list. At block 208, the module 125 willthen construct an array containing the elements identified at block 206.

If elements were found at block 208, the module 125 will then determineat block 210 whether all of the values are of the appropriate type.Typically, this test will comprise determining if all the elements inthe array are numbers. Next, at block 212, the module 125 passes thearray of elements to a list of statistical functions, which each computethe desired statistical datum. The module 125 then displays the name ofthe function together with its result in a results window at block 214.Some embodiments may also replace list of elements 129 in the clipboardwith a table containing the function name(s) and result(s). Theseembodiments may be desirable because the statistical information canthen be easily “pasted” into another application, such as a wordprocessing program.

FIGS. 3-4 illustrate one embodiment of a method for customizing thestatistical functions computed by the present invention. Morespecifically, FIG. 3 illustrates one embodiment of a configuration file300 for the module 125 shown in FIG. 2. This configuration fileembodiment 300 comprises a global configuration section 302, a functionlist section 310, and a plurality of function configuration sections 320a-320 n. The global configuration section 302 contains a timing field304 specifying when the user wishes the module 125 to display thecomputed results (e.g., immediately after highlighting the selection,after hovering for a predetermined amount of time, after triggering aparticular sequence of keys, or even never), and a language field 306specifying what language the calculator should display the functionnames. The function list section 310 contains a list 312 of whatfunctions the module 125 should display. The function configurationsections 320 (only one shown in detail for clarity) each contain alibrary name field 322 describing what library contains the code thatwill compute the function, a function name field 324 containing programname of the function in the library 322, and at least one display username field 326 containing a plain-text name of the function in aparticular language.

FIG. 4 illustrates a method of initializing the module 125. At block402, the module 125 retrieves the list of functions 312 from theconfiguration file 300. The module 125 then retrieves the display timingcriteria from the timing field 304 at block 404. Next, at block 406, themodule 125 registers itself to the operating system 124 b as a windowprocedure, which allows it to be notified of any relevant mouse andkeyboard events. The module 125 then proceeds to perform the operationsdescribed in more detail with reference to FIG. 2.

Referring again to FIG. 1, the computer systems 102 in this embodimentare general-purpose programmable computing devices. Accordingly, thecentral processing units 110 may be any device capable of executing theprogram instructions stored in main memory 112, and may be constructedfrom one or more microprocessors and/or integrated circuits. In thisembodiment, when one of the computer systems 102 start up, theassociated CPU 110 initially executes the program instructions that makeup the operating system 124, which manages the physical and logicalresources of the computer system 102. These resources include thecentral processing unit 110, the main memory 112, the mass storageinterface 114, the display interface 115, the network interface 116, andthe system bus 122. Moreover, although each computer system 102 in FIG.1 is shown to with only a single processing unit 110 and a single systembus 122, those skilled in the art will appreciate that the presentinvention may be practiced using a computer system 102 that has multipleprocessing units 110 and/or multiple system buses 122. In addition, theinterfaces 114, 115, 116, and 118 may each include their own separate,fully programmed microprocessors, which may be used to off-loadcompute-intensive processing from the main processing units 110.

The main memory 112 and the storage devices 140, 142 may be any systemcapable of storing and retrieving data for the central processing units110. These systems may utilize virtual addressing mechanisms that allowthe computer systems 102 to behave as if they only have access to alarge, single storage entity instead of access to multiple, smallerstorage entities such as main memory 112 and DASD device 140. Therefore,while the operating systems 124, the configuration manager 132, and theapplication program instances 126 are shown to reside in main memory112, those skilled in the art will recognize that these items are notnecessarily all completely contained in main memory 112 at the sametime, and may even reside in the virtual memory of other computersystems coupled to the computer system 102.

The display interface 115 is used to directly connect one or moredisplay units 180 to the computer system 102. These display units 180may be non-intelligent (i.e., dumb) terminals, such as a cathode raytube, or may themselves be fully programmable workstations used to allowIT administrators and users to communicate with one or more of thecomputer systems 102. Note, however, that while the display interface115 is provided to support communication with one or more displays 180,the computer systems 102 does not necessarily require a display 180because all needed interaction with users and other processes may occurvia network interface 116.

The communication medium 106 can be any device or system that allows thecomputer systems 102 to communicate with each other. The networkinterfaces 116, accordingly, can be any device that facilitates suchcommunication, regardless of whether the network connection is madeusing present-day analog and/or digital techniques or via somenetworking mechanism of the future. Suitable communication mediums 106include, but are not limited to, the Internet, intranets, cellulartransmission networks, wireless networks using one of the IEEE 802.11specifications, and the like. Those skilled in the art will appreciatethat many different network protocols can be used to implement thecommunication medium 106. The Transmission Control Protocol/InternetProtocol (“TCP/IP”) is an example of a suitable network protocol forInternet-based communication.

The embodiment described with reference to FIGS. 1-4 generally uses aclient-server network architecture. These embodiments are desirablebecause the pervasive 102 b can utilize the services of the web servercomputers 102 a without either computer system 102 requiring knowledgeof the working details about the other. However, those skilled in theart will appreciate that other network architectures are within thescope of the present invention. Examples of other suitable networkarchitectures include peer-to-peer architectures, grid architectures,and multi-tier architectures. Accordingly, the terms web server andclient computer should not be construed to limited the invention toclient-server network architectures.

One suitable web server computer 102 a is an eServer iSeries computerrunning the OS/400 multitasking operating system, both of which areproduced by International Business Machines Corporation of Armonk, N.Y.One pervasive device 102 b is a mobile telephone running an embeddedLinux or Windows operating systems. However, those skilled in the artwill appreciate that the mechanisms and apparatus of the presentinvention apply equally to any computer system 102 and operating system124, regardless of whether one or both of the server computer 102 a andpervasive devices 102 b are complicated multi-user computingapparatuses, a single workstations, lap-top computers, mobiletelephones, personal digital assistants (“PDAs”), video game systems, orthe like.

Although the present invention has been described in detail withreference to certain examples thereof, it may be also embodied in otherspecific forms without departing from the essential spirit or attributesthereof. For example, those skilled in the art will appreciate that thepresent invention is capable of being distributed as a program productin a variety of forms, and applies equally regardless of the particulartype of signal bearing media used to actually carry out thedistribution. Examples of suitable signal bearing media include, but arenot limited to: (i) information permanently stored on non-writablestorage media (e.g., read-only memory devices within a computer such asCD-ROM disks readable by a CD-ROM drive); (ii) alterable informationstored on writable storage media (e.g., floppy disks within a diskettedrive, a CD-R disk, a CD-RW disk, or hard-disk drive); or (iii)information conveyed to a computer by a communications medium, such asthrough a computer or telephone network, including wirelesscommunications, and specifically includes information downloaded fromthe Internet and other networks. Such signal-bearing media, whencarrying computer-readable instructions that direct the functions of thepresent invention, represent embodiments of the present invention. Inaddition, those skilled in the art will also appreciate that the presentinvention is not limited to pervasive devices.

The present invention could also be implemented at a number of differentlogical layers within the pervasive device 102 b. For example, thefunctionality described with reference to FIGS. 1-4 could be embodied aspart of the operating system 124 b. These embodiments may be desirablebecause applications running on the operating system 124 b can providethis functionality without needing to know about the existence andoperation of the module 125. The functionality could also be included asa plug-in or extension for an existing application.

The present invention can also be used for purposes other thancalculating standard statistical information about a list of elements.For example, the present invention and its customizable output could beused to transfer information from a database or log file into anapplication program. In these embodiments, the user would customize theAPI 125 to output the information in the application's desired format,and then simply “cut and paste” the formatted information into theapplication program.

The accompanying figures and this description depicted and describedembodiments of the present invention, and features and componentsthereof. Those skilled in the art will appreciate that any particularprogram nomenclature used in this description was merely forconvenience, and thus the invention should not be limited to use solelyin any specific application identified and/or implied by suchnomenclature. Thus, for example, the routines executed to implement theembodiments of the invention, whether implemented as part of anoperating system or a specific application, component, program, module,object, or sequence of instructions could have been referred to as a“program”, “application”, “server”, or other meaningful nomenclature.Therefore, it is desired that the embodiments described herein beconsidered in all respects as illustrative, not restrictive, and thatreference be made to the appended claims for determining the scope ofthe invention.

1. A method of displaying customizable summary information about a listof elements, comprising: receiving a selection of at least one desiredsummary function; generating a configuration file containing the atleast one desired summary function; receiving notification of aselection event in a web browser, the selection event comprising a useridentifying a portion of a web page comprising a plurality of numbers;in response to the selection event, automatically: copying the portionof the web page into a clipboard; parsing the configuration file toextract the least one desired function; extracting the numbers from theweb page; calculating the at least one desired summary function usingthe extracted numbers to generate summary information; displaying thesummary information in a pop-up window; and replacing the portion of theweb page in the clipboard with the summary information.
 2. The method ofclaim 1, wherein the plurality of numbers are not contiguous in the webpage.
 3. The method of claim 2, wherein the configuration file comprisesat least one field chosen from the group consisting of a library name, afunction name field, and an display name field.
 4. The method of claim3, further comprising registering a window procedure with an operatingsystem.
 5. A method of displaying summary information about a list ofelements, comprising: parsing a configuration file to extract at leastone desired summary function; receiving notification of a selectionevent, the selection event comprising a user identifying in a webbrowser executing on the computing system a portion of a web page,wherein the the portion of the web page comprises a list of elements; inresponse to the selection event, automatically: copying the portion ofthe web page into a clipboard; parsing the configuration file to extractthe least one desired function; extracting the elements from portion ofthe web page; calculating the at least one desired summary functionusing the extracted elements to generate summary information; displayingthe summary information in a results window; and replacing the portionof the web page in the clipboard with the summary information.
 6. Themethod of claim 5, wherein identifying the list of elements in theportion of the web page comprises highlighting textual material thatcontains the list of elements and at least one separator.
 7. The methodof claim 6, wherein extracting the elements from the portion of the webpage comprises: parsing the textual material to identify the at leastone separator; and removing the at least one separator from the list ofelements.
 8. The method of claim 7, wherein the results window comprisesa pop-up window.
 9. The method of claim 7, wherein the results windowcomprises a hover help window.
 10. The method of claim 6, wherein theelements in the list are non-contiguous.